using System.Net;
using System.Threading.Tasks;
using ePipe;

namespace Letter.Net.Session;

public interface ISession
{
    string Id
    {
        get;
    }

    bool Active
    {
        get;
    }

    EndPoint LocalEndPoint
    {
        get;
    }

    EndPoint RemoteEndPoint
    {
        get;
    }

    IDuplexPipe<byte> Transport
    {
        get;
    }

    ValueTask StartAsync();
    
    ValueTask CloseAsync();
}